/**
 * 页面配置类型定义
 * 此文件由脚本自动生成，请勿手动修改
 */

/**
 * PageURIString
 */
export type PageURIString = string;

/**
 * ColorString
 */
export type ColorString = string;

/**
 * VueI18NKeyString
 */
export type VueI18NKeyString = string;

/**
 * ImageURIString
 */
export type ImageURIString = string;

/**
 * ThemeJsonString
 */
export type ThemeJsonString = string;

/**
 * NPageURIString
 */
export type NPageURIString = string;

/**
 * 在指定网络下预下载，可选值为：all（不限网络）、wifi（仅wifi下预下载）
 */
export type NetworkType = 'all' | 'wifi';

/**
 * 导航栏标题颜色，仅支持 black/white
 */
export type NavigationBarTextStyleType = 'white' | 'black';

/**
 * 导航栏样式，仅支持 default/custom。custom即取消默认的原生导航栏，需看[使用注意](https://uniapp.dcloud.net.cn/collocation/pages.html#customnav)。
 */
export type NavigationStyleType = 'default' | 'custom';

/**
 * 下拉 loading 的样式，仅支持 dark/light
 */
export type BackgroundTextStyleType = 'dark' | 'light';

/**
 * 导航栏整体（前景、背景）透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明
 */
export type TransparentTitleType = 'always' | 'auto' | 'none';

/**
 * 导航栏点击穿透
 */
export type TitlePenetrateType = 'YES' | 'NO';

/**
 * 横屏配置，屏幕旋转设置，仅支持 auto / portrait / landscape 详见 [响应显示区域变化](https://uniapp.dcloud.net.cn/collocation/pages.html#globalstyle)。
 */
export type PageOrientationType = 'auto' | 'portrait' | 'landscape';

/**
 * 窗口显示的动画效果，详见：[窗口动画](https://uniapp.dcloud.net.cn/api/router.html#animation)。
 */
export type AnimationType = 'slide-in-right' | 'slide-in-left' | 'slide-in-top' | 'slide-in-bottom' | 'fade-in' | 'zoom-out' | 'zoom-fade-out' | 'pop-in';

/**
 * 是否允许向下拉拽。默认 YES。如果需要下拉刷新，值必须为YES
 */
export type AllowsBounceVerticalType = 'YES' | 'NO';

/**
 * 弹出系统软键盘模式
 */
export type SoftinputModeType = 'nothing' | 'adjustPan' | 'adjustResize';

/**
 * 页面回弹效果，设置为 "none" 时关闭效果。仅支持 app-vue（nvue Android无页面级bounce效果，仅list、recycle-list、waterfall等滚动组件有bounce效果）
 */
export type BounceType = 'none' | 'vertical' | 'horizontal' | 'all';

/**
 * 侧滑返回功能，可选值："close"（启用侧滑返回）、"none"（禁用侧滑返回）。
 */
export type PopGestureType = 'close' | 'none';

/**
 * 是否显示滚动条，设置为 "none" 时不显示滚动条。
 */
export type ScrollIndicatorType = 'all' | 'vertical' | 'horizontal' | 'none';

/**
 * iOS软键盘上完成工具栏的显示模式，设置为 "none" 时关闭工具栏。
 */
export type SoftinputNavBarType = 'auto' | 'none';

/**
 * 标题文字超出显示区域时处理方式。"clip"-超出显示区域时内容裁剪；"ellipsis"-超出显示区域时尾部显示省略标记（...）。
 */
export type TitleOverflowType = 'clip' | 'ellipsis';

/**
 * 导航栏样式。"default"-默认样式；"transparent"-滚动透明渐变；"float"-悬浮导航栏。
 */
export type Type = 'default' | 'transparent' | 'float';

/**
 * 仅在backgroundImage设置为图片路径时有效。 可取值： "repeat" - 背景图片在垂直方向和水平方向平铺； "repeat-x" - 背景图片在水平方向平铺，垂直方向拉伸； "repeat-y" - 背景图片在垂直方向平铺，水平方向拉伸； "no-repeat" - 背景图片在垂直方向和水平方向都拉伸。 默认使用 "no-repeat"。
 */
export type BackgroundRepeatType = 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';

/**
 * 可取值： "center"-居中对齐； "left"-居左对齐； "auto"-根据平台自动选择（Android平台居左对齐，iOS平台居中对齐）
 */
export type TitleAlignType = 'center' | 'left' | 'auto';

/**
 * 原生子窗体的排版位置，排版位置决定原生子窗体在父窗口中的定位方式。 可取值："static"，原生子窗体在页面中正常定位，如果页面存在滚动条则随窗口内容滚动；"absolute"，原生子窗体在页面中绝对定位，如果页面存在滚动条不随窗口内容滚动；"dock"，原生子窗体在页面中停靠，停靠的位置由dock属性值决定。 默认值为"absolute"。
 */
export type PositionType = 'static' | 'absolute' | 'dock';

/**
 * 原生子窗体的停靠方式,仅当原生子窗体 "position" 属性值设置为 "dock" 时才生效，可取值："top"，原生子窗体停靠则页面顶部；"bottom"，原生子窗体停靠在页面底部；"right"，原生子窗体停靠在页面右侧；"left"，原生子窗体停靠在页面左侧。 默认值为"bottom"。
 */
export type DockType = 'top' | 'bottom' | 'right' | 'left';

/**
 * 可取值："default"——经典下拉刷新样式（下拉拖动时页面内容跟随）；"circle"——圆圈样式下拉刷新控件样式（下拉拖动时仅刷新控件跟随）。
 */
export type StyleType = 'default' | 'circle';

/**
 * 按钮在标题栏上的显示位置，可取值"left"、"right"
 */
export type FloatType = 'right' | 'left';

/**
 * 按钮上文字的粗细。可取值"normal"-标准字体、"bold"-加粗字体。
 */
export type FontWeightType = 'normal' | 'bold';

/**
 * 按钮点击后触发的回调函数
 */
export type OnclickType = 'Function';

/**
 * 非输入状态下文本的对齐方式。可取值： "left" - 居左对齐； "right" - 居右对齐； "center" - 居中对齐。
 */
export type AlignType = 'left' | 'right' | 'center';

/**
 * 返回按钮上标题的粗细，可取值： "normal" - 标准字体； "bold" - 加粗字体。
 */
export type TitleWeightType = 'normal' | 'bold';

/**
 * 是否进入时显示导航栏的 loading。支持 YES / NO
 */
export type ShowTitleLoadingType = 'YES' | 'NO';

/**
 * 支付宝小程序 iOS 用，是否支持手势返回。支持 YES / NO
 */
export type GestureBackType = 'YES' | 'NO';

/**
 * 支付宝小程序 Android 用，是否显示 WebView 滚动条。支持 YES / NO。
 */
export type EnableScrollBarType = 'YES' | 'NO';

/**
 * PagesOptionsPage 接口定义
 */
export interface PagesOptionsPage {
  /**
   * 配置页面路径
   */
  path: string | PageURIString;

  /**
   * 配置页面窗口表现，配置项参考下方 [pageStyle](https://doc.dcloud.net.cn/uni-app-x/collocation/pagesjson.html#pagesoptionspage-style)。
   */
  style?: PagesOptionsPageStyle;

  /**
   * 是否需要登录才可访问
   */
  needLogin?: boolean;

}

/**
 * PreloadRulePage 接口定义
 */
export interface PreloadRulePage {
  /**
   * 在指定网络下预下载，可选值为：all（不限网络）、wifi（仅wifi下预下载）
   */
  network?: NetworkType;

  /**
   * 进入页面后预下载分包的 root 或 name。__APP__ 表示主包。
   */
  packages: Record<string, any>;

}

/**
 * PagesOptionsPageStyle 接口定义
 */
export interface PagesOptionsPageStyle {
  /**
   * 导航栏背景颜色（同状态栏背景色）
   */
  navigationBarBackgroundColor?: string | ColorString;

  /**
   * 导航栏标题颜色，仅支持 black/white
   */
  navigationBarTextStyle?: NavigationBarTextStyleType;

  /**
   * 导航栏阴影，配置参考下方 [导航栏阴影](https://doc.dcloud.net.cn/uni-app-x/collocation/pagesjson.html#pagesoptionspage-style)
   */
  navigationBarShadow?: NavigationBarShadowOptions;

  /**
   * 设置为 true 则页面整体不能上下滚动（bounce效果），只在页面配置中有效，在globalStyle中设置无效(仅 IOS 支持)。
   */
  disableScroll?: boolean;

  /**
   * 是否开启下拉刷新，详见[页面生命周期](https://doc.dcloud.net.cn/uni-app-x/page.html)。
   */
  enablePullDownRefresh?: boolean;

  /**
   * 导航栏标题文字内容
   */
  navigationBarTitleText?: string | VueI18NKeyString;

  /**
   * 导航栏样式，仅支持 default/custom。custom即取消默认的原生导航栏，需看[使用注意](https://uniapp.dcloud.net.cn/collocation/pages.html#customnav)。
   */
  navigationStyle?: NavigationStyleType;

  /**
   * 下拉刷新显示出来的窗口的背景色（无下拉刷新时，此颜色无效果）
   */
  backgroundColor?: string | ColorString;

  /**
   * 下拉 loading 的样式，仅支持 dark/light
   */
  backgroundTextStyle?: BackgroundTextStyleType;

  /**
   * 页面上拉触底事件触发时距页面底部距离，单位只支持px，详见[页面生命周期](https://doc.dcloud.net.cn/uni-app-x/page.html)。
   */
  onReachBottomDistance?: number;

  /**
   * 顶部窗口的背景色(bounce回弹区域), 仅 iOS 平台
   */
  backgroundColorTop?: string | ColorString;

  /**
   * 底部窗口的背景色(bounce回弹区域), 仅 iOS 平台
   */
  backgroundColorBottom?: string | ColorString;

  /**
   * 是否禁用右滑手势关闭页面
   */
  disableSwipeBack?: boolean;

  /**
   * 导航栏图片地址（替换当前文字标题），支付宝小程序内必须使用https的图片链接地址
   */
  titleImage?: string | ImageURIString;

  /**
   * 导航栏整体（前景、背景）透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明
   */
  transparentTitle?: TransparentTitleType;

  /**
   * 导航栏点击穿透
   */
  titlePenetrate?: TitlePenetrateType;

  /**
   * 编译到 App 平台的特定样式
   */
  "app-plus"?: PagesOptionsPageStyleAppPlus;

  /**
   * 编译到 Harmony 平台的特定样式
   */
  "app-harmony"?: PagesOptionsPageStyleAppHarmony;

  /**
   * 编译到 H5 平台的特定样式
   */
  h5?: PagesOptionsPageStyleH5;

  /**
   * 支付宝小程序特有配置
   */
  "mp-alipay"?: PagesOptionsPageStyleMPAlipay;

  /**
   * 微信小程序特有配置
   */
  "mp-weixin"?: Record<string, any>;

  /**
   * 百度小程序特有配置
   */
  "mp-baidu"?: Record<string, any>;

  /**
   * 头条小程序特有配置
   */
  "mp-toutiao"?: Record<string, any>;

  /**
   * QQ小程序特有配置
   */
  "mp-qq"?: Record<string, any>;

  /**
   * 快手小程序特有配置
   */
  "mp-kuaishou"?: Record<string, any>;

  /**
   * 设置编译到 mp-jd 平台的特定样式
   */
  "mp-jd"?: Record<string, any>;

  /**
   * 飞书小程序特有配置
   */
  "mp-lark"?: Record<string, any>;

  /**
   * 引用小程序组件，参考 [小程序组件https://uniapp.dcloud.net.cn/tutorial/miniprogram-subject.html#小程序自定义组件支持)。
   */
  usingComponents?: Record<string, any>;

  /**
   * 当存在 leftWindow时，当前页面是否显示 leftWindow
   */
  leftWindow?: boolean;

  /**
   * 当存在 topWindow时，当前页面是否显示 topWindow
   */
  topWindow?: boolean;

  /**
   * 当存在 rightWindow时，当前页面是否显示 rightWindow
   */
  rightWindow?: boolean;

  /**
   * 单位px，当浏览器可见区域宽度大于maxWidth时，两侧留白，当小于等于maxWidth时，页面铺满；不同页面支持配置不同的maxWidth；maxWidth = leftWindow(可选)+page(页面主体)+rightWindow(可选)
   */
  maxWidth?: number;

}

/**
 * PagesGlobalPageStyle 接口定义
 */
export interface PagesGlobalPageStyle {
  /**
   * 导航栏背景颜色（同状态栏背景色）
   */
  navigationBarBackgroundColor?: string | ColorString | ThemeJsonString;

  /**
   * 导航栏标题颜色，仅支持 black/white（支付宝小程序不支持，请使用 [my.setNavigationBar](https://opendocs.alipay.com/mini/api/xwq8e6)）。
   */
  navigationBarTextStyle?: NavigationBarTextStyleType;

  /**
   * 导航栏标题文字内容
   */
  navigationBarTitleText?: string;

  /**
   * 导航栏样式，仅支持 default/custom。custom即取消默认的原生导航栏，需看[使用注意](https://uniapp.dcloud.net.cn/collocation/pages.html#customnav)。
   */
  navigationStyle?: NavigationStyleType;

  /**
   * 下拉刷新显示出来的窗口的背景色（无下拉刷新时，此颜色无效果）
   */
  backgroundColor?: string | ColorString | ThemeJsonString;

  /**
   * 下拉 loading 的样式，仅支持 dark / light
   */
  backgroundTextStyle?: BackgroundTextStyleType;

  /**
   * 是否开启下拉刷新，详见[页面生命周期](https://doc.dcloud.net.cn/uni-app-x/page.html)。
   */
  enablePullDownRefresh?: boolean;

  /**
   * 页面上拉触底事件触发时距页面底部距离，单位只支持px，详见[页面生命周期](https://doc.dcloud.net.cn/uni-app-x/page.html)。
   */
  onReachBottomDistance?: number;

  /**
   * 顶部窗口的背景色(bounce回弹区域), 仅 iOS 平台
   */
  backgroundColorTop?: string | ColorString | ThemeJsonString;

  /**
   * 底部窗口的背景色(bounce回弹区域), 仅 iOS 平台
   */
  backgroundColorBottom?: string | ColorString | ThemeJsonString;

  /**
   * 导航栏图片地址（替换当前文字标题），支付宝小程序内必须使用https的图片链接地址
   */
  titleImage?: string | ImageURIString;

  /**
   * 导航栏整体（前景、背景）透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明
   */
  transparentTitle?: TransparentTitleType;

  /**
   * 导航栏点击穿透
   */
  titlePenetrate?: TitlePenetrateType;

  /**
   * 横屏配置，屏幕旋转设置，仅支持 auto / portrait / landscape 详见 [响应显示区域变化](https://uniapp.dcloud.net.cn/collocation/pages.html#globalstyle)。
   */
  pageOrientation?: PageOrientationType;

  /**
   * 窗口显示的动画效果，详见：[窗口动画](https://uniapp.dcloud.net.cn/api/router.html#animation)。
   */
  animationType?: AnimationType;

  /**
   * 窗口显示动画的持续时间，单位为 ms
   */
  animationDuration?: number;

  /**
   * 是否允许向下拉拽。默认 YES。如果需要下拉刷新，值必须为YES
   */
  allowsBounceVertical?: AllowsBounceVerticalType;

  /**
   * 引用小程序组件，参考 [小程序组件](https://uniapp.dcloud.net.cn/tutorial/miniprogram-subject.html)。
   */
  usingComponents?: Record<string, any>;

  /**
   * 同层渲染，webrtc(实时音视频) 无法正常时尝试配置 seperated 强制关掉同层
   */
  renderingMode?: string;

  /**
   * 当存在 leftWindow时，默认是否显示 leftWindow
   */
  leftWindow?: boolean;

  /**
   * 当存在 topWindow时，默认是否显示 topWindow
   */
  topWindow?: boolean;

  /**
   * 当存在 rightWindow时，默认是否显示 rightWindow
   */
  rightWindow?: boolean;

  /**
   * rpx 计算所支持的最大设备宽度，单位 px
   */
  rpxCalcMaxDeviceWidth?: number;

  /**
   * rpx 计算使用的基准设备宽度，设备实际宽度超出 rpx 计算所支持的最大设备宽度时将按基准宽度计算，单位 px
   */
  rpxCalcBaseDeviceWidth?: number;

  /**
   * rpx 计算特殊处理的值，始终按实际的设备宽度计算，单位 rpx
   */
  rpxCalcIncludeWidth?: number;

  /**
   * 动态 rpx，屏幕大小变化会重新渲染 rpx
   */
  dynamicRpx?: boolean;

  /**
   * 单位px，当浏览器可见区域宽度大于maxWidth时，两侧留白，当小于等于maxWidth时，页面铺满；不同页面支持配置不同的maxWidth；maxWidth = leftWindow(可选)+page(页面主体)+rightWindow(可选)
   */
  maxWidth?: number;

  /**
   * 弹出系统软键盘模式
   */
  softinputMode?: SoftinputModeType;

  /**
   * 5+ App 特有配置
   */
  "app-plus"?: PagesOptionsPageStyleAppPlus;

  /**
   * Harmony App 特有配置
   */
  "app-harmony"?: PagesOptionsPageStyleAppHarmony;

  /**
   * H5 特有配置
   */
  h5?: PagesOptionsPageStyleH5;

  /**
   * 支付宝小程序特有配置
   */
  "mp-alipay"?: PagesOptionsPageStyleMPAlipay;

  /**
   * 微信小程序特有配置
   */
  "mp-weixin"?: Record<string, any>;

  /**
   * 百度小程序特有配置
   */
  "mp-baidu"?: Record<string, any>;

  /**
   * 头条小程序特有配置
   */
  "mp-toutiao"?: Record<string, any>;

  /**
   * QQ小程序特有配置
   */
  "mp-qq"?: Record<string, any>;

  /**
   * 快手小程序特有配置
   */
  "mp-kuaishou"?: Record<string, any>;

  /**
   * 设置编译到 mp-jd 平台的特定样式
   */
  "mp-jd"?: Record<string, any>;

  /**
   * 飞书小程序特有配置
   */
  "mp-lark"?: Record<string, any>;

}

/**
 * PagesWindowsOptions 接口定义
 */
export interface PagesWindowsOptions {
  /**
   * 配置页面路径
   */
  path?: string;

  /**
   * 配置页面窗口表现，配置项参考下方 [pageStyle](https://uniapp.dcloud.net.cn/collocation/pages.html?id=style)
   */
  style?: Record<string, any>;

  /**
   * 配置显示该窗口的规则，配置项参考下方 [matchMedia](https://uniapp.dcloud.net.cn/collocation/pages.html?id=matchmedia)
   */
  matchMedia?: Record<string, any>;

}

/**
 * PagesOptionsPageStyleAppPlus 接口定义
 */
export interface PagesOptionsPageStyleAppPlus {
  /**
   * 窗体背景色。无论vue页面还是nvue页面，在App上都有一个父级原生窗体，该窗体的背景色生效时间快于页面里的css生效时间，vue 页面需要将 body 背景色设为透明
   */
  background?: string | ColorString;

  /**
   * 导航栏，详见:[导航栏](https://uniapp.dcloud.net.cn/collocation/pages.html?id=app-titleNView)。
   */
  titleNView?: PageStyleAppPlusTitleNView;

  /**
   * 原生子窗体，详见:[原生子窗体](https://uniapp.dcloud.net.cn/collocation/pages.html?id=app-subNVues)。
   */
  subNVues?: PageStyleAppPlusSubNVues[];

  /**
   * 软键盘弹出模式，支持 adjustResize、adjustPan 两种模式
   */
  softinputMode?: SoftinputModeType;

  /**
   * 页面回弹效果，设置为 "none" 时关闭效果。仅支持 app-vue（nvue Android无页面级bounce效果，仅list、recycle-list、waterfall等滚动组件有bounce效果）
   */
  bounce?: BounceType;

  /**
   * 侧滑返回功能，可选值："close"（启用侧滑返回）、"none"（禁用侧滑返回）。
   */
  popGesture?: PopGestureType;

  /**
   * 下拉刷新
   */
  pullToRefresh?: PageStyleAppPlusPullToRefresh;

  /**
   * 是否显示滚动条，设置为 "none" 时不显示滚动条。
   */
  scrollIndicator?: ScrollIndicatorType;

  /**
   * 窗口显示的动画效果，详见：[窗口动画](https://uniapp.dcloud.net.cn/api/router.html#animation)。
   */
  animationType?: AnimationType;

  /**
   * 窗口显示动画的持续时间，单位为 ms
   */
  animationDuration?: number;

  /**
   * iOS软键盘上完成工具栏的显示模式，设置为 "none" 时关闭工具栏。
   */
  softinputNavBar?: SoftinputNavBarType;

}

/**
 * PagesOptionsPageStyleAppHarmony 接口定义
 */
export interface PagesOptionsPageStyleAppHarmony {
  /**
   * 弹出系统软键盘模式
   */
  softinputMode?: SoftinputModeType;

}

/**
 * PageStyleAppPlusTitleNView 接口定义
 */
export interface PageStyleAppPlusTitleNView {
  /**
   * 背景颜色，支持16进制颜色或RGBA颜色(仅悬浮导航栏支持RGBA颜色)。
   */
  backgroundColor?: string | ColorString;

  /**
   * 自定义按钮(纯nvue即render:native时暂不支持)，详见 [buttons](https://uniapp.dcloud.net.cn/collocation/pages.html?id=app-titlenview-buttons)。
   */
  buttons?: PageStyleAppPlusTitleNViewButton[];

  /**
   * 标题文字颜色
   */
  titleColor?: string | ColorString;

  /**
   * 标题文字超出显示区域时处理方式。"clip"-超出显示区域时内容裁剪；"ellipsis"-超出显示区域时尾部显示省略标记（...）。
   */
  titleOverflow?: TitleOverflowType;

  /**
   * 标题文字内容
   */
  titleText?: string | VueI18NKeyString;

  /**
   * 标题文字字体大小
   */
  titleSize?: string;

  /**
   * 导航栏样式。"default"-默认样式；"transparent"-滚动透明渐变；"float"-悬浮导航栏。
   */
  type?: Type;

  /**
   * 原生 View 增强，详见：[5+ View 控件](http://www.html5plus.org/doc/zh_cn/nativeobj.html#plus.nativeObj.ViewDrawTagStyles)。
   */
  tags?: any[];

  /**
   * 原生导航栏上的搜索框配置，详见：[searchInput](https://uniapp.dcloud.net.cn/collocation/pages.html?id=app-titlenview-searchinput)。
   */
  searchInput?: PageStyleAppPlusTitleNViewSearchInput;

  /**
   * 返回按钮的样式，详见：[backButton](https://uniapp.dcloud.net.cn/collocation/pages.html?id=app-titleNView-backButtonStyles)。
   */
  backButton?: PageStyleAppPlusBackButton;

  /**
   * 标题栏控件是否显示左侧返回按钮
   */
  autoBackButton?: boolean;

  /**
   * 标题栏控件是否显示Home按钮
   */
  homeButton?: boolean;

  /**
   * 支持以下类型： 背景图片路径 - 如"./img/t.png"，仅支持本地文件路径， 相对路径，相对于当前页面的host位置，根据实际标题栏宽高拉伸绘制； 渐变色 - 仅支持线性渐变，两种颜色的渐变，如“linear-gradient(to top, #a80077, #66ff00)”， 其中第一个参数为渐变方向，可取值： "to right"表示从左向右渐变， "to left"表示从右向左渐变， "to bottom"表示从上到下渐变， "to top"表示从下到上渐变， "to bottom right"表示从左上角到右下角， "to top left"表示从右下角到左上角。
   */
  backgroundImage?: string | ImageURIString;

  /**
   * 仅在backgroundImage设置为图片路径时有效。 可取值： "repeat" - 背景图片在垂直方向和水平方向平铺； "repeat-x" - 背景图片在水平方向平铺，垂直方向拉伸； "repeat-y" - 背景图片在垂直方向平铺，水平方向拉伸； "no-repeat" - 背景图片在垂直方向和水平方向都拉伸。 默认使用 "no-repeat"。
   */
  backgroundRepeat?: BackgroundRepeatType;

  /**
   * 可取值： "center"-居中对齐； "left"-居左对齐； "auto"-根据平台自动选择（Android平台居左对齐，iOS平台居中对齐）
   */
  titleAlign?: TitleAlignType;

}

/**
 * PageStyleAppPlusSubNVues 接口定义
 */
export interface PageStyleAppPlusSubNVues {
  /**
   * subNVue 原生子窗体的标识
   */
  id?: string;

  /**
   * 配置 nvue 文件路径，nvue 文件需放置到使用 subNvue 的页面文件目录下
   */
  path?: string | NPageURIString;

  /**
   * 内置样式
   */
  type?: Type;

  /**
   * subNVue 原生子窗体的样式，配置项参考下方[subNVuesStyle](https://uniapp.dcloud.net.cn/collocation/pages.html?id=app-subNVuesStyle)
   */
  style?: SubNVuesStyle;

}

/**
 * SubNVuesStyle 接口定义
 */
export interface SubNVuesStyle {
  /**
   * 原生子窗体的排版位置，排版位置决定原生子窗体在父窗口中的定位方式。 可取值："static"，原生子窗体在页面中正常定位，如果页面存在滚动条则随窗口内容滚动；"absolute"，原生子窗体在页面中绝对定位，如果页面存在滚动条不随窗口内容滚动；"dock"，原生子窗体在页面中停靠，停靠的位置由dock属性值决定。 默认值为"absolute"。
   */
  position?: PositionType;

  /**
   * 原生子窗体的停靠方式,仅当原生子窗体 "position" 属性值设置为 "dock" 时才生效，可取值："top"，原生子窗体停靠则页面顶部；"bottom"，原生子窗体停靠在页面底部；"right"，原生子窗体停靠在页面右侧；"left"，原生子窗体停靠在页面左侧。 默认值为"bottom"。
   */
  dock?: DockType;

  /**
   * 原生子窗体的遮罩层,仅当原生子窗体 "type" 属性值设置为 "popup" 时才生效，可取值： rgba格式字符串，定义纯色遮罩层样式，如"rgba(0,0,0,0.5)"，表示黑色半透明；
   */
  mask?: string | ColorString;

  /**
   * 原生子窗体的宽度,支持百分比、像素值，默认为100%。未设置width属性值时，可同时设置left和right属性值改变窗口的默认宽度。
   */
  width?: string;

  /**
   * 原生子窗体的高度,支持百分比、像素值，默认为100%。 当未设置height属性值时，优先通过top和bottom属性值来计算原生子窗体的高度。
   */
  height?: string;

  /**
   * 原生子窗体垂直向下的偏移量，支持百分比、像素值，默认值为0px。 未设置top属性值时，优先通过bottom和height属性值来计算原生子窗体的top位置。
   */
  top?: string;

  /**
   * 原生子窗体垂直向上偏移量,支持百分比、像素值，默认值无值（根据top和height属性值来自动计算）。 当同时设置了top和height值时，忽略此属性值； 当未设置height值时，可通过top和bottom属性值来确定原生子窗体的高度。
   */
  bottom?: string;

  /**
   * 原生子窗体水平向左的偏移量，支持百分比、像素值，默认值为0px。 未设置left属性值时，优先通过right和width属性值来计算原生子窗体的left位置。
   */
  left?: string;

  /**
   * 原生子窗体水平向右的偏移量，支持百分比、像素值，默认无值（根据left和width属性值来自动计算）。 当设置了left和width值时，忽略此属性值； 当未设置width值时，可通过left和bottom属性值来确定原生子窗体的宽度。
   */
  right?: string;

  /**
   * 原生子窗体的边距，用于定位原生子窗体的位置，支持auto，auto表示居中。若设置了left、right、top、bottom则对应的边距值失效。
   */
  margin?: string;

}

/**
 * PageStyleAppPlusPullToRefresh 接口定义
 */
export interface PageStyleAppPlusPullToRefresh {
  /**
   * 是否开启窗口的下拉刷新功能
   */
  support?: boolean;

  /**
   * 颜色值格式为"#RRGGBB"，仅"circle"样式下拉刷新支持此属性。
   */
  color?: string | ColorString;

  /**
   * 可取值："default"——经典下拉刷新样式（下拉拖动时页面内容跟随）；"circle"——圆圈样式下拉刷新控件样式（下拉拖动时仅刷新控件跟随）。
   */
  style?: StyleType;

  /**
   * 窗口的下拉刷新控件进入刷新状态的拉拽高度。支持百分比，如"10%"；像素值，如"50px"，不支持 rpx。
   */
  height?: string;

  /**
   * 窗口可下拉拖拽的范围。支持百分比，如"10%"；像素值，如"50px"，不支持 rpx。
   */
  range?: string;

  /**
   * 下拉刷新控件的起始位置。仅对"circle"样式下拉刷新控件有效，用于定义刷新控件下拉时的起始位置。支持百分比，如"10%"；像素值，如"50px"，不支持rpx。如使用了非原生title且需要原生下拉刷新，一般都使用circle方式并将offset调至自定义title的高度
   */
  offset?: string;

  /**
   * 目前支持一个属性：caption——在下拉可刷新状态时下拉刷新控件上显示的标题内容。仅对"default"样式下拉刷新控件有效。
   */
  contentdown?: PageStyleAppPlusPullToRefreshContent;

  /**
   * 目前支持一个属性：caption——在释放可刷新状态时下拉刷新控件上显示的标题内容。仅对"default"样式下拉刷新控件有效。
   */
  contentover?: PageStyleAppPlusPullToRefreshContent;

  /**
   * 目前支持一个属性：caption——在正在刷新状态时下拉刷新控件上显示的标题内容。仅对"default"样式下拉刷新控件有效。
   */
  contentrefresh?: PageStyleAppPlusPullToRefreshContent;

}

/**
 * PageStyleAppPlusPullToRefreshContent 接口定义
 */
export interface PageStyleAppPlusPullToRefreshContent {
  /**
   * 下拉刷新控件上显示的标题内容
   */
  caption?: string;

}

/**
 * PageStyleAppPlusTitleNViewButton 接口定义
 */
export interface PageStyleAppPlusTitleNViewButton {
  /**
   * 按钮样式，可取值见：[buttons 样式](https://uniapp.dcloud.net.cn/collocation/pages.html?id=app-titlenview-buttons-type)
   */
  type?: Type;

  /**
   * 按钮上文字颜色
   */
  color?: string | ColorString;

  /**
   * 按下状态按钮文字颜色
   */
  colorPressed?: string;

  /**
   * 按钮在标题栏上的显示位置，可取值"left"、"right"
   */
  float?: FloatType;

  /**
   * 按钮上文字的粗细。可取值"normal"-标准字体、"bold"-加粗字体。
   */
  fontWeight?: FontWeightType;

  /**
   * 按钮上文字大小
   */
  fontSize?: string;

  /**
   * 按钮上文字使用的字体文件路径。不支持网络地址，请统一使用本地地址。
   */
  fontSrc?: string;

  /**
   * 按钮点击后触发的回调函数
   */
  onclick?: OnclickType;

  /**
   * 按钮上显示的文字。使用字体图标时 unicode 字符表示必须 "\u" 开头，如 ""（注意不能写成"\e123"）。
   */
  text?: string;

}

/**
 * PageStyleAppPlusTitleNViewProgress 接口定义
 */
export interface PageStyleAppPlusTitleNViewProgress {
  /**
   * 进度条颜色
   */
  color?: string | ColorString;

  /**
   * 进度条高度
   */
  height?: string;

}

/**
 * PageStyleAppPlusTitleNViewSplitLine 接口定义
 */
export interface PageStyleAppPlusTitleNViewSplitLine {
  /**
   * 底部分割线颜色
   */
  color?: string | ColorString;

  /**
   * 底部分割线高度
   */
  height?: string;

}

/**
 * PageStyleAppPlusTitleNViewSearchInput 接口定义
 */
export interface PageStyleAppPlusTitleNViewSearchInput {
  /**
   * 是否自动获取焦点
   */
  autoFocus?: boolean;

  /**
   * 非输入状态下文本的对齐方式。可取值： "left" - 居左对齐； "right" - 居右对齐； "center" - 居中对齐。
   */
  align?: AlignType;

  /**
   * 背景颜色
   */
  backgroundColor?: string;

  /**
   * 输入框的圆角半径，取值格式为"XXpx"，其中XX为像素值（逻辑像素），不支持rpx。
   */
  borderRadius?: string;

  /**
   * 提示文本
   */
  placeholder?: string | VueI18NKeyString;

  /**
   * 提示文本颜色
   */
  placeholderColor?: string;

  /**
   * 是否可输入
   */
  disabled?: boolean;

}

/**
 * PageStyleAppPlusBackButton 接口定义
 */
export interface PageStyleAppPlusBackButton {
  /**
   * 背景颜色，仅在标题栏type=transparent时生效，当标题栏透明时按钮显示的背景颜色。 可取值#RRGGBB和rgba格式颜色字符串，默认值为灰色半透明。
   */
  background?: string;

  /**
   * 角标文本，最多显示3个字符，超过则显示为...
   */
  badgeText?: string;

  /**
   * 图标和标题颜色，可取值： "#RRGGBB"格式字符串，如"#FF0000"表示红色； "rgba(R,G,B,A)"，其中R/G/B分别代表红色值/绿色值/蓝色值，正整数类型，取值范围为0-255，A为透明度，浮点数类型，取值范围为0-1（0为全透明，1为不透明），如"rgba(255,0,0,0.5)"，表示红色半透明。
   */
  color?: string;

  /**
   * 按下状态按钮文字颜色，可取值： "#RRGGBB"格式字符串，如"#FF0000"表示红色； "rgba(R,G,B,A)"，其中R/G/B分别代表红色值/绿色值/蓝色值，正整数类型，取值范围为0-255，A为透明度，浮点数类型，取值范围为0-1（0为全透明，1为不透明），如"rgba(255,0,0,0.5)"，表示红色半透明。 默认值为color属性值自动调整透明度为0.3。
   */
  colorPressed?: string;

  /**
   * 返回图标的粗细，可取值："normal" - 标准字体； "bold" - 加粗字体。
   */
  fontWeight?: string;

  /**
   * 返回图标文字大小，可取值：字体高度像素值，数字加"px"格式字符串，如"22px"。 窗口标题栏为透明样式（type="transparent"）时，默认值为"22px"； 窗口标题栏为默认样式（type="default"）时，默认值为"27px"。
   */
  fontSize?: string;

  /**
   * 是否显示红点，设置为true则显示红点，false则不显示红点。默认值为false。 注意：当设置了角标文本时红点不显示。
   */
  redDot?: boolean;

  /**
   * 返回按钮上的标题，显示在返回图标（字体图标）后，默认为空字符串。
   */
  title?: string;

  /**
   * 返回按钮上标题的粗细，可取值： "normal" - 标准字体； "bold" - 加粗字体。
   */
  titleWeight?: TitleWeightType;

}

/**
 * PagesOptionsPageStyleH5 接口定义
 */
export interface PagesOptionsPageStyleH5 {
  /**
   * 导航栏设置
   */
  titleNView?: PageStyleH5TitleNView;

  /**
   * 下拉刷新
   */
  pullToRefresh?: PageStyleH5PullToRefresh;

}

/**
 * PagesOptionsPageStyleMPAlipay 接口定义
 */
export interface PagesOptionsPageStyleMPAlipay {
  /**
   * 是否允许向下拉拽。支持 YES / NO
   */
  allowsBounceVertical?: AllowsBounceVerticalType;

  /**
   * 导航栏透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明
   */
  transparentTitle?: TransparentTitleType;

  /**
   * 导航栏点击穿透
   */
  titlePenetrate?: TitlePenetrateType;

  /**
   * 是否进入时显示导航栏的 loading。支持 YES / NO
   */
  showTitleLoading?: ShowTitleLoadingType;

  /**
   * 导航栏图片地址，替换导航栏标题，必须为https的图片链接地址
   */
  titleImage?: string;

  /**
   * 下拉露出显示的背景图链接
   */
  backgroundImageUrl?: string | ImageURIString;

  /**
   * 下拉露出显示的背景图底色
   */
  backgroundImageColor?: string | ColorString;

  /**
   * 支付宝小程序 iOS 用，是否支持手势返回。支持 YES / NO
   */
  gestureBack?: GestureBackType;

  /**
   * 支付宝小程序 Android 用，是否显示 WebView 滚动条。支持 YES / NO。
   */
  enableScrollBar?: EnableScrollBarType;

}

/**
 * PageStyleH5TitleNView 接口定义
 */
export interface PageStyleH5TitleNView {
  /**
   * 背景颜色，颜色值格式为"#RRGGBB"。
   */
  backgroundColor?: string | ColorString;

  /**
   * 自定义按钮，参考 [buttons](https://uniapp.dcloud.net.cn/collocation/pages.html?id=h5-titlenview-buttons)。
   */
  buttons?: any[];

  /**
   * 标题文字颜色
   */
  titleColor?: string | ColorString;

  /**
   * 标题文字内容
   */
  titleText?: string;

  /**
   * 标题文字字体大小
   */
  titleSize?: string;

  /**
   * 导航栏样式。"default"-默认样式；"transparent"-透明渐变。
   */
  type?: Type;

}

/**
 * PageStyleH5PullToRefresh 接口定义
 */
export interface PageStyleH5PullToRefresh {
  /**
   * 是否开启窗口的下拉刷新功能
   */
  support?: boolean;

  /**
   * 颜色值格式为"#RRGGBB"，仅"circle"样式下拉刷新支持此属性。
   */
  color?: string | ColorString;

  /**
   * 下拉刷新控件样式
   */
  type?: Type;

  /**
   * 窗口的下拉刷新控件进入刷新状态的拉拽高度。支持百分比，如"10%"；像素值，如"50px"。
   */
  height?: string;

  /**
   * 窗口可下拉拖拽的范围。支持百分比，如"10%"；像素值，如"50px"。
   */
  range?: string;

  /**
   * 下拉刷新控件的起始位置。仅对"circle"样式下拉刷新控件有效，用于定义刷新控件下拉时的起始位置。支持百分比，如"10%"；像素值，如"50px"。
   */
  offset?: string;

  /**
   * 在下拉可刷新状态时下拉刷新控件显示的内容
   */
  contentdown?: PageStyleAppPlusPullToRefreshContent;

  /**
   * 在释放可刷新状态时下拉刷新控件显示的内容
   */
  contentover?: PageStyleAppPlusPullToRefreshContent;

  /**
   * 在正在刷新状态时下拉刷新控件显示的内容
   */
  contentrefresh?: PageStyleAppPlusPullToRefreshContent;

}

/**
 * PageStyleH5TitleNViewButton 接口定义
 */
export interface PageStyleH5TitleNViewButton {
  /**
   * 按钮样式，可取值见：[buttons 样式](https://uniapp.dcloud.net.cn/collocation/pages.html?id=app-titlenview-buttons-type)
   */
  type?: Type;

  /**
   * 按钮上文字颜色
   */
  color?: string | ColorString;

  /**
   * 按下状态按钮文字颜色
   */
  colorPressed?: string;

  /**
   * 按钮在标题栏上的显示位置，可取值"left"、"right"
   */
  float?: FloatType;

  /**
   * 按钮上文字的粗细。可取值"normal"-标准字体、"bold"-加粗字体。
   */
  fontWeight?: FontWeightType;

  /**
   * 按钮上文字大小
   */
  fontSize?: string;

  /**
   * 按钮上文字使用的字体文件路径。
   */
  fontSrc?: string;

  /**
   * 按钮点击后触发的回调函数
   */
  onclick?: OnclickType;

  /**
   * 按钮上显示的文字。使用字体图标时 unicode 字符表示必须 "\u" 开头，如 ""（注意不能写成"\e123"）。
   */
  text?: string;

}

/**
 * PagesOptionsTabbar 接口定义
 */
export interface PagesOptionsTabbar {
  /**
   * list设置 iconfont 属性时，需要指定字体文件路径
   */
  iconfontSrc?: string;

  /**
   * tab 上的文字默认颜色
   */
  color: string | ColorString | ThemeJsonString;

  /**
   * tab 上的文字选中时的颜色
   */
  selectedColor: string | ColorString | ThemeJsonString;

  /**
   * tab 的背景色
   */
  backgroundColor: string | ColorString | ThemeJsonString;

  /**
   * tabbar 上边框的颜色，可选值 black、white，black对应颜色rgba(0,0,0,0.33)，white对应颜色rgba(255,255,255,0.33)。
   */
  borderStyle?: string | ThemeJsonString;

  /**
   * tab 的列表，详见 list 属性说明，最少2个、最多5个 tab
   */
  list: PagesOptionsTabbarList[];

  /**
   * tabbar 的位置,可选值 bottom、top。
   */
  position?: PositionType;

  /**
   * 文字默认大小
   */
  fontSize?: string;

  /**
   * 图标默认宽度（高度等比例缩放）
   */
  iconWidth?: string;

  /**
   * 图标和文字的间距
   */
  spacing?: string;

  /**
   * tabBar 默认高度
   */
  height?: string;

  /**
   * 中间按钮 仅在 list 项为偶数时有效
   */
  midButton?: PagesOptionsTabbarMidButton;

  /**
   * 设置背景图片，优先级高于 backgroundColor
   */
  backgroundImage?: string;

  /**
   * 设置标题栏的背景图平铺方式
   */
  backgroundRepeat?: BackgroundRepeatType;

  /**
   * tabbar上红点颜色
   */
  redDotColor?: string | ColorString;

}

/**
 * PagesOptionsTabbarMidButton 接口定义
 */
export interface PagesOptionsTabbarMidButton {
  /**
   * 中间按钮的宽度，tabBar 其它项为减去此宽度后平分，默认值为与其它项平分宽度
   */
  width?: string;

  /**
   * 中间按钮的高度，可以大于 tabBar 高度，达到中间凸起的效果
   */
  height?: string;

  /**
   * 中间按钮的文字
   */
  text?: string;

  /**
   * 中间按钮的图片路径
   */
  iconPath?: string | ImageURIString;

  /**
   * 图标默认宽度（高度等比例缩放）
   */
  iconWidth?: string;

  /**
   * 中间按钮的背景图片路径
   */
  backgroundImage?: string | ImageURIString;

}

/**
 * PagesOptionsTabbarList 接口定义
 */
export interface PagesOptionsTabbarList {
  /**
   * 字体图标，优先级高于 iconPath
   */
  iconfont?: IconfontOptions;

  /**
   * 页面路径，必须在 pages 中先定义
   */
  pagePath: string | PageURIString;

  /**
   * tab 上按钮文字，在 App 和 H5 平台为非必填。例如中间可放一个没有文字的+号图标
   */
  text: string | VueI18NKeyString;

  /**
   * 图片路径，icon 大小限制为40kb，建议尺寸为 81px * 81px，当 position 为 top 时，此参数无效，不支持网络图片，不支持字体图标
   */
  iconPath?: string | ImageURIString | ThemeJsonString;

  /**
   * 选中时的图片路径，icon 大小限制为40kb，建议尺寸为 81px * 81px ，当 position 为 top 时，此参数无效
   */
  selectedIconPath?: string | ImageURIString | ThemeJsonString;

}

/**
 * PagesCondition 接口定义
 */
export interface PagesCondition {
  /**
   * 当前激活的模式，list节点的索引值。
   */
  current: number;

  /**
   * 启动模式列表
   */
  list: PagesConditionItem[];

}

/**
 * PagesConditionItem 接口定义
 */
export interface PagesConditionItem {
  /**
   * 启动模式名称
   */
  name: string;

  /**
   * 启动页面路径
   */
  path: string | PageURIString;

  /**
   * 启动参数，可在页面的 onLoad 函数里获得
   */
  query?: string;

}

/**
 * PagesSubPackages 接口定义
 */
export interface PagesSubPackages {
  /**
   * 子包的根目录
   */
  root: string;

  /**
   * 子包由哪些页面组成，参数同 pages
   */
  pages: PagesOptionsPage[];

}

/**
 * 导航栏阴影
 */
export interface NavigationBarShadowOptions {
  /**
   * 阴影的颜色，支持：grey、blue、green、orange、red、yellow
   */
  colorType?: 'grey' | 'blue' | 'green' | 'orange' | 'red' | 'yellow';

}

/**
 * 字体图标，优先级高于 iconPath
 */
export interface IconfontOptions {
  /**
   * 字库 Unicode 码
   */
  text?: string;

  /**
   * 选中后字库 Unicode 码
   */
  selectedText?: string;

  /**
   * 字体图标字号(px)
   */
  fontSize?: string;

  /**
   * 字体图标颜色
   */
  color?: string | ColorString;

  /**
   * 字体图标选中颜色
   */
  selectedColor?: string | ColorString;

}

/**
 * 组件自动引入规则
 */
export interface EasycomOptions {
  /**
   * 是否开启自动扫描，开启后将会自动扫描符合components/组件名称/组件名称.vue/uvue目录结构的组件
   */
  autoscan?: boolean;

  /**
   * 以正则方式自定义组件匹配规则。如果autoscan不能满足需求，可以使用custom自定义匹配规则
   */
  custom?: Record<string, any>;

}

/**
 * uni-id自动路由
 */
export interface UniIdRouterOptions {
  /**
   * 登录页面路径
   */
  loginPage?: string | PageURIString;

  /**
   * 是否开启自动根据响应体判断跳转登录页面，默认true（开启）
   */
  resToLogin?: boolean;

  needLogin?: (string | PageURIString)[];

}

/**
 * pages.json 配置选项
 */
export interface PagesOptions {
  /**
   * 默认页面的窗口表现
   */
  globalStyle?: PagesGlobalPageStyle;

  /**
   * 上窗体
   */
  topWindow?: PagesWindowsOptions;

  /**
   * 左窗体
   */
  leftWindow?: PagesWindowsOptions;

  /**
   * 右窗体
   */
  rightWindow?: PagesWindowsOptions;

  /**
   * 页面路径及窗口表现
   */
  pages: PagesOptionsPage[];

  /**
   * 底部 tab 的表现
   */
  tabBar?: PagesOptionsTabbar;

  /**
   * 启动模式
   */
  condition?: PagesCondition;

  /**
   * 分包加载配置
   */
  subPackages?: PagesSubPackages[];

  /**
   * 使用 Worker 处理多线程任务时，设置 Worker 代码放置的目录
   */
  workers?: string;

  /**
   * 声明分包预下载的规则
   */
  preloadRule?: Record<string, PreloadRulePage>;

  /**
   * 组件自动引入规则
   */
  easycom?: EasycomOptions;

  /**
   * 根据用户登录状态、页面是否要求登录、以及接口返回的用户token验证状态自动跳转登录页面。详细教程：[详见](https://doc.dcloud.net.cn/uniCloud/uni-id/summary.html#uni-id-router)
   */
  uniIdRouter?: UniIdRouterOptions;

}
